package gob.pgr.ws;

import gob.pgr.dao.HibernateDao;
import gob.pgr.dto.Empleado;
import gob.pgr.util.PGRUtil;

import java.util.List;

import javax.jws.WebService;

@WebService(serviceName = "WSPGR", endpointInterface = "gob.pgr.ws.WSPGRService")
public class WSPGR implements WSPGRService {
	private HibernateDao hibernateDao;

	public HibernateDao getHibernateDao() {
		return hibernateDao;
	}

	public void setHibernateDao(HibernateDao hibernateDao) {
		this.hibernateDao = hibernateDao;
	}

	@Override
	public String ejemploWS(String nombre) {
		String respuesta = "";
		SalidaWS salida = new SalidaWS();
		salida.setCodigoRetorno("00");
		salida.setMensaje("Hola Mundo");
		respuesta = PGRUtil.generarXml(salida);
		return respuesta;
	}

	@SuppressWarnings("unchecked")
	@Override
	public String obtenerDatosEmpleado(String carnetEmpleado) {
		String respuesta = "";
		SalidaWS salida = new SalidaWS();
		String codigoRetorno = "00";
		String mensaje = "Operacion Exitosa";
		Empleado empleado = new Empleado();
		empleado.setCarnetEmpleado(carnetEmpleado);
		try {
			List<Empleado> empleados = hibernateDao.getHibernateTemplate().findByExample(empleado);
			if (empleados == null || empleados.size() != 1) throw new Exception("No se encontro registro para este carnet de empleado");
			empleado = empleados.get(0);
		} catch (Exception e) {
			e.printStackTrace();
			mensaje = "Error en operacion. Mensaje: " + e.getMessage();
			empleado = null;
		}
		salida.setCodigoRetorno(codigoRetorno);
		salida.setMensaje(mensaje);
		salida.setEmpleado(empleado);
		respuesta = PGRUtil.generarXml(salida);
		return respuesta;
	}
	
	

}
